package org.pidan.basic.designModel.factory.abstractFactory;

/**
 * {@code @description}: 创建一个总工厂，及实现类（由总工厂的实现类决定调用那个工厂的那个实例）
 * {@code @author}: huangyuxin
 * {@code @date}: 2023-11-16
 */
public interface TotalFactory {

    Abstract1 createCar();

    Abstract2 createEngine();

}

//总工厂实现类，由他决定调用哪个工厂的那个实例
class TotalFactoryReally implements TotalFactory {

    @Override
    public Abstract1 createCar() {
        return new BenTian();
    }

    @Override
    public Abstract2 createEngine() {
        return new Engine1();
    }
}
